package cn.com.blueInfo.bpm.person.repository;

import cn.com.blueInfo.bpm.person.entity.GroupFormula;
import cn.com.blueInfo.bpm.person.request.GroupFormulaDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 群组公式 数据服务类
 * @author suxch
 * @since 2025-09-01 19:28:09
 */
public interface GroupFormulaRepository extends IService<GroupFormula> {

    /**
     * 新增群组公式
     * @param groupFormula 群组公式参数
     */
    Integer createGroupFormula(GroupFormula groupFormula);

    /**
     * 批量新增群组公式
     * @param groupFormulaList 群组公式参数列表
     */
    Integer batchCreateGroupFormula(List<GroupFormula> groupFormulaList);

    /**
     * 删除群组公式
     * @param groupFormulaId 群组公式ID
     */
    Integer deleteGroupFormula(Long groupFormulaId);

    /**
     * 批量删除群组公式
     * @param groupFormulaIdList 群组公式ID列表
     */
    Integer batchDeleteGroupFormula(List<Long> groupFormulaIdList);

    /**
     * 更新部分群组公式
     * @param groupFormula 群组公式参数
     */
    Integer updateGroupFormulaPartial(GroupFormula groupFormula);

    /**
     * 更新全部群组公式
     * @param groupFormula 群组公式参数
     */
    Integer updateGroupFormula(GroupFormula groupFormula);

    /**
     * 查询一条群组公式
     * @param groupFormulaId 群组公式ID
     */
    GroupFormula getGroupFormulaById(Long groupFormulaId);

    /**
     * 分页查询群组公式
     * @param groupFormulaQueryDTO 群组公式参数
     */
    Page<GroupFormula> getGroupFormulaPage(GroupFormulaDTO.QueryDTO groupFormulaQueryDTO);

    /**
     * 根据条件查询 群组公式 数量
     * @param groupFormulaQueryDTO 群组公式参数
     */
    Long getGroupFormulaCount(GroupFormulaDTO.QueryDTO groupFormulaQueryDTO);

    /**
     * 根据条件查询 群组公式
     * @param groupFormulaQueryDTO 群组公式参数
     */
    List<GroupFormula> getGroupFormulaList(GroupFormulaDTO.QueryDTO groupFormulaQueryDTO);

}
